C语言 |
您所在的位置:网站首页 › 点赞 英文单词 › C语言 |
目录 题目要求 代码实现 题目要求将一句英语短句中的单词进行倒置,标点符号不倒置 如: 输入:"I like chongqing very much," 输出:"much, very chongqing like I" 代码实现 #include #include //逆置函数 void reverse(char* left, char* right) { while (left < right) { char tmp = *left; *left = *right; *right = tmp; left++; right--; } } int main() { //输入 char arr[100]; gets(arr); //逆置字符串 int len = strlen(arr); reverse(arr, arr + len - 1); //逆置各个单词 char* start = arr; char* cur = arr; while (*cur != '\0') { //找到每个单词的尾地址 while (*cur != ' ' && *cur != '\0') cur++; //逆置每个单词 reverse(start, cur - 1); start = cur + 1; if (*cur == ' ') cur++; } //输出 printf("%s\n", arr); return 0; }代码解析: 先逆置整个字符串,再逆置各个单词 举例说明: "I like chongqing very much," 逆置整个字符串 ",hcum yrev gniqgnohc ekil I" 逆置各个单词 "much, very chongqing like I" 解析:void reverse(char* left, char* right) 封装一个逆置函数,用来逆置 整个字符串 和 各个单词 解析:int len = strlen(arr); 字符串的长度 解析:reverse(arr, arr + len - 1); 逆置整个字符串,传递字符串的 起始地址arr,和字符串的 结束地址arr + len(字符串长度) - 1 解析:while (*cur != '\0') 及内部循环 start指针 指向单词首地址,cur指针 找空格,找到空格后利用 reverse函数 逆置 逆置完一个单词后,start指针 指向下一个单词的首地址,利用外部 while循环,cur指针 重复找空格,最后完成所有单词的逆置 代码验证: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |